﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Neturion.Dados
{
    /// <summary>
    /// 
    /// </summary>
    public class Setor
    {
        private int _setorId;
        private string _codigo;
        private string _descricao;
        private string _observacao;
        private DateTime? _inicioVigencia;
        private DateTime? _fimVigencia;
        private IList _listaFuncionarios;
        private Funcionario _gerente;

        public Setor()
        {
            _listaFuncionarios = new List<Funcionario>();
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual int SetorId
        {
            get { return _setorId; }
            set { _setorId = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Codigo
        {
            get { return _codigo; }
            set { _codigo = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Observacao
        {
            get { return _observacao; }
            set { _observacao = value; }
        }

        public virtual string Descricao
        {
            get { return _descricao; }
            set { _descricao = value; }
        }

        public virtual DateTime? InicioVigencia
        {
            get { return _inicioVigencia; }
            set { _inicioVigencia = value; }
        }

        public virtual DateTime? FimVigencia
        {
            get { return _fimVigencia; }
            set { _fimVigencia = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual Funcionario Gerente
        {
            get { return _gerente; }
            set { _gerente = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual IList ListaFuncionarios
        {
            get { return _listaFuncionarios; }
            set { _listaFuncionarios = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="funcionario"></param>
        public virtual void AdicionarFuncionario(Funcionario funcionario)
        {
            funcionario.Setor = this;
            ListaFuncionarios.Add(funcionario);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="funcionario"></param>
        public virtual void RemoverFuncionario(Funcionario funcionario)
        {
            ListaFuncionarios.Remove(funcionario);
        }
    }
}